/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package INTERFAZ;

import CONTROLES.ControlEmpleo;
import CONTROLES.ControlSucursal;
import MODELOS.Empleo;
import UTILITARIOS.Herramienta;
import UTILITARIOS.UTextField;
import java.awt.BorderLayout;
import java.awt.Choice;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.util.StringTokenizer;
import javax.swing.*;
import javax.swing.border.TitledBorder;




/**
 *
 * @author Administrador
 */
public class FormEmpleo extends JDialog implements Propiedades{

//     ControlUsuario control;

    private JPanel titulo;
    private JPanel formulario;
    private JPanel botones;

    private JLabel lblIdSucursal;
    private Choice choiseIdSucursal;

    private JLabel lblNombreEmpleo;
    private UTextField txtEmpleo;

    private JLabel lblDescripcion;
    private UTextField txtDescripcion;

    private JLabel lblSalario;
    private UTextField txtSalario;


    private JButton btnAceptar;
    private JButton btnAceptarMas;
    private JButton btnCancelar;

    ControlSucursal cSucursal;

    public FormEmpleo(java.awt.Frame parent)
    {
        super(parent);
        setProperties();
        buildComponents();
        setPropertiesComponents();
        addComponents();
        addEvents();

    }


    public void setProperties() {
        setLayout(null);
		setSize(560, 218);
		setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
                setTitle("Registro de Empleos");
		getContentPane().setBackground(Color.BLACK);
		setResizable(false);
    }

    public void buildComponents() {

        cSucursal = new ControlSucursal();
        String lista[] = cSucursal.nombresSuc();

        lblIdSucursal = new JLabel("Sucursal : ", JLabel.RIGHT );
        choiseIdSucursal = new Choice();
        for(int i = 0; i<lista.length; i++)
           choiseIdSucursal.add(lista[i]);
        setChoiseIdSucursal(Bienvenida.sucursal.getIdSucursal()+"-"+Bienvenida.sucursal.getNombreSuc());

        lblNombreEmpleo = new JLabel("Nombre del Empleo : ", JLabel.RIGHT );
        txtEmpleo = new UTextField(UTextField.ONLY_CARACTERS_VALUE);

        lblDescripcion = new JLabel("Descricion del Empleo : ", JLabel.RIGHT );
        txtDescripcion = new UTextField(UTextField.ONLY_CARACTERS_VALUE);

        lblSalario = new JLabel("Salario : ", JLabel.RIGHT );
        txtSalario = new UTextField(UTextField.DOUBLE_VALUE);



        titulo = new JPanel();
        formulario = new JPanel();
        botones = new JPanel();

        btnAceptar = new JButton("GUARDAR");
        btnAceptarMas = new JButton("GUARDAR Y AÑADIR MAS");
        btnCancelar = new JButton("CANCELAR");
    }

    public void setPropertiesComponents() {
        titulo.setLayout(new BorderLayout(1,1));
        titulo.setSize(new Dimension(555,190));
        
        titulo.setBorder(BorderFactory.createTitledBorder(null,"DATOS DEL EMPLEO",TitledBorder.CENTER , TitledBorder.DEFAULT_POSITION));
        
        formulario.setLayout(new FlowLayout());
        formulario.setSize(new Dimension(500,100));
        
        botones.setSize(250, 100);
       

        //titulo.setBorder(Herramienta.createTitleBorder("Registro de Usuarios"));
        formulario.setBorder(Herramienta.createTitleBorder(""));
        botones.setBorder(BorderFactory.createTitledBorder(null,"ACCIONES",TitledBorder.CENTER , TitledBorder.DEFAULT_POSITION));

        Dimension dimLabel = new Dimension(120,20);
	Dimension dimText = new Dimension(290,20);
	Font fontLabel = new Font("Tahoma",Font.PLAIN,11);

        lblIdSucursal.setPreferredSize( dimLabel );
        lblIdSucursal.setFont(fontLabel);
        lblIdSucursal.setForeground(Color.BLACK);
        choiseIdSucursal.setPreferredSize( dimText );
        if(Bienvenida.user.getTipoUsuario().equalsIgnoreCase("ADMINISTRADOR") && Bienvenida.user.getToken().equalsIgnoreCase("INGRESAR") ){
       choiseIdSucursal.setEnabled(true);
       }else{
       choiseIdSucursal.setEnabled(false);
       }

        lblNombreEmpleo.setPreferredSize( dimLabel );
        lblNombreEmpleo.setFont(fontLabel);
        lblNombreEmpleo.setForeground(Color.BLACK);
        txtEmpleo.setPreferredSize( dimText );
        //txtNombre.setMandatory(true);

        lblDescripcion.setPreferredSize(dimLabel);
        lblDescripcion.setFont(fontLabel);
         lblDescripcion.setForeground(Color.BLACK);
        txtDescripcion.setPreferredSize(dimText);

        lblSalario.setPreferredSize(dimLabel);
        lblSalario.setFont(fontLabel);
        lblSalario.setForeground(Color.BLACK);
        txtSalario.setPreferredSize(dimText);

        btnAceptar.setPreferredSize(new Dimension(100,20));
        btnAceptarMas.setPreferredSize(new Dimension(180,20));
        btnCancelar.setPreferredSize(new Dimension(100,20));

        botones.setOpaque(false);

        btnAceptar.setToolTipText("guardar Empleo");
        btnAceptar.setForeground(Color.BLACK);
        btnAceptarMas.setToolTipText("guardar Empleo Y seguir añadiendo otros");
        btnAceptarMas.setForeground(Color.BLACK);
        btnCancelar.setToolTipText("Cancelar la operación");
        btnCancelar.setForeground(Color.BLACK);

        btnAceptar.setMnemonic('g');
        btnAceptarMas.setMnemonic('a');
        btnCancelar.setMnemonic('c');
    }

    public void addComponents() {

        formulario.add(lblIdSucursal);
        formulario.add(choiseIdSucursal);

        formulario.add(lblNombreEmpleo);
        formulario.add(txtEmpleo);

        formulario.add(lblDescripcion);
        formulario.add(txtDescripcion);

        formulario.add(lblSalario);
        formulario.add(txtSalario);

   
        botones.add(btnAceptar);
        botones.add(btnAceptarMas);
        botones.add(btnCancelar);
     
        add(titulo);
        titulo.add( "Center",formulario);
        titulo.add("South",botones);

    }
    private int guardar(){
        ControlEmpleo control_empleo = new ControlEmpleo();
        Empleo empleo = new Empleo();
        
        String idSuc = getChoiseIdSucursal();
        StringTokenizer i = new StringTokenizer(idSuc,"-");
        int idSucursal = Integer.parseInt(i.nextToken());

        double salario = Double.parseDouble(getTxtSalario());
        if(getTxtDescripcion().equals("") || gettxtEmpleo().equals("") || salario <= 0){
            return 2;
        }else{
            empleo.setIdSucursal(idSucursal);
            empleo.setDescripcionEmpleo(getTxtDescripcion());
            empleo.setNombreEmpleo(gettxtEmpleo());
            empleo.setSalario(salario);

            if(control_empleo.registrarEmpleo(empleo) == true)
                return 0;
            else
                return 1;
        }
    }
    public void addEvents() {
        btnAceptarMas.addActionListener( new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                int t = guardar();
                if(t==0){
                    JOptionPane.showMessageDialog(null, "Empleo Registrado Correctmente, Presione Aceptar y continue añadiendo MAS ", "Confirmación", JOptionPane.INFORMATION_MESSAGE);
                    txtDescripcion.setText(null);
                    txtSalario.setText(null);
                    txtEmpleo.setText(null);
                }
                else if(t==1){
                    JOptionPane.showMessageDialog(null, "Se produjo un error al tratar de registrar el Empleo", "Confirmación", JOptionPane.YES_OPTION);
                    dispose();
                }
                else if(t==2)
                    JOptionPane.showMessageDialog(null, "Los Datos del formulario no han sido llenados correctamente", "Confirmación", JOptionPane.YES_OPTION);
            }
        });
        btnAceptar.addActionListener( new ActionListener(){
            public void actionPerformed(ActionEvent e) {                
                int t = guardar();
                if(t==0){
                    JOptionPane.showMessageDialog(null, "Empleo correctamente ingresado ", "Confirmación", JOptionPane.YES_OPTION);
                    dispose();
                } else if (t == 1){
                    JOptionPane.showMessageDialog(null, "Se produjo un error al tratar de registrar el Empleo", "Confirmación", JOptionPane.YES_OPTION);
                    dispose();
                }
                else if(t==2)
                    JOptionPane.showMessageDialog(null, "Los Datos del formulario no han sido llenados correctamente", "Confirmación", JOptionPane.YES_OPTION);
            }
        });
        btnCancelar.addActionListener( new ActionListener(){
            public void actionPerformed(ActionEvent e) {
                    //JOptionPane.showMessageDialog(null, "Gracias por utilizar el sistema ", "Adventencia", JOptionPane.OK_OPTION);
                    //System.exit(0);
                dispose();
            }
        });


               addWindowListener( new WindowAdapter(){
			@Override
			public void windowClosing(WindowEvent e) {
				//JOptionPane.showMessageDialog(null, "Seguro que quiere salir", "Adventencia", JOptionPane.OK_OPTION);
                                //System.exit(0);
                        }
		});
    }

    
    public String gettxtEmpleo() {
        return txtEmpleo.getText();
    }

    public void settxtEmpleo(String txtEmpleo) {
        this.txtEmpleo.setText(txtEmpleo);
    }
    
    public String getTxtDescripcion() {
        return  txtDescripcion.getText();
    }

    public void setTxtDescripcion(String txtDescripcion) {
        this.txtDescripcion.setText(txtDescripcion);
    }
    public String getTxtSalario() {
        return  txtSalario.getText();
    }

    public void setTxtSalario(String txtSalario) {
        this.txtSalario.setText(txtSalario);
    }

    public String getChoiseIdSucursal() {
        return choiseIdSucursal.getSelectedItem();
    }

    public void setChoiseIdSucursal(String choiseIdSucursal) {
        this.choiseIdSucursal.select(choiseIdSucursal);
    }
    public static void main(String args[])
    {
        FormEmpleo n = new FormEmpleo(new java.awt.Frame());
        n.setVisible(true);

    }
}
